package com.dragon.design.pattern.structural.template;

/**
 * 模板方法设计模式中的抽象类
 *
 * @author dragon
 * @version V1.0.0-RELEASE
 * @date 2019/7/2 17:22
 */
public abstract class AbstractBusinessHandler {

    /**
     * 模板方法
     */
    public final void execute() {
        getRowNumber();
        handle();
        judge();
    }

    /**
     * 取号
     *
     * @return
     */
    private void getRowNumber() {
        System.out.println("rowNumber-00" + (int) (Math.random() * 1000));
    }

    /**
     * 办理业务
     */
    public abstract void handle(); //抽象的办理业务方法，由子类实现

    /**
     * 评价
     */
    private void judge() {
        System.out.println("give a praised");
    }


}
